<template>
  <div class="container">
    <!-- 顶部区域 -->
    <div class="info-box">
      <van-image
        width="64"
        height="64"
        round
        fit="cover"
        :src="userInfo.photo"
      />
      <h2 class="name">
        {{ userInfo.name }}
        <br />
        <van-tag type="primary" color="#fff" text-color="#3296fa">{{
          userInfo.birthday
        }}</van-tag>
      </h2>
    </div>
    <!-- 操作导航 -->
    <van-row class="user-nav">
      <van-col span="8">
        <van-icon name="newspaper-o" color="#7af" />我的作品
      </van-col>
      <van-col span="8">
        <van-icon name="star-o" color="#f00" />我的收藏
      </van-col>
      <van-col span="8">
        <van-icon name="tosend" color="#fa0" />阅读历史
      </van-col>
    </van-row>
    <!-- 编辑cell -->
    <van-cell-group class="user-group">
      <van-cell icon="edit" title="编辑资料" is-link @click="$router.push('/edit')"/>
      <van-cell icon="chat-o" title="小智同学" is-link to="/student"/>
      <van-cell icon="setting-o" title="系统设置" is-link />
      <van-cell
        icon="warning-o"
        title="退出登录"
        is-link
        @click="logoutClick"
      />
    </van-cell-group>
  </div>
</template>

<script>
/* 导入网络中间层 */
import { getUserInfo } from './user.js'
/* 导入token工具包 */
import { removeToken } from '@/utils/token.js'
export default {
  name: 'user',
  data () {
    return {
      //用户信息
      userInfo: {}
    }
  },
  /* 生命周期勾子 */
  created () {
    getUserInfo().then(res => {
      console.log(res)
      //绑定数据
      this.userInfo = res.data.data
      //将数据更新到vuex
      this.$store.commit('setUserInfo',res.data.data)
    })
  },
  methods: {
    /* 退出登录 */
    logoutClick () {
      this.$dialog
        .confirm({
          title: '你真的要退出了吗?嘤嘤嘤',
          message: '算你狠!!'
        })
        .then(() => {
          // 用户点击确认执行的回调
          console.log('then')
          //(1)清除token
          removeToken()
          //(2)清除用户信息
          this.userInfo = {}
          //(3)跳转首页
          this.$router.push({path:'/home'})
        })
        .catch(() => {
          // 用户点击取消执行的回调
          console.log('catch')
        })
    }
  }
}
</script>

<style lang="less">
.container {
  /* 头部 */
  .info-box {
    height: 100px;
    background-color: #3296fa;
    display: flex;
    align-items: center;
    padding-left: 15px;
    .name {
      font-size: 18px;
      margin-left: 15px;
      color: white;
      font-weight: normal;
    }
  }

  /* 操作导航 */
  .user-nav {
    padding: 15px 0;
    font-size: 12px;
    text-align: center;
    background-color: #fff;
    .van-icon {
      display: block;
      font-size: 24px;
      padding-bottom: 5px;
    }
  }
}
</style>
